<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html lang="en">
<HEAD>

<meta name="copyright" content="Copyright (c) IBM Corporation and others 2008, 2011. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page." >

<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">

<LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
<TITLE>Provisioning platform (p2)</TITLE>

<link rel="stylesheet" type="text/css" HREF="../book.css">
</HEAD>
<BODY BGCOLOR="#ffffff">
<H2>
Provisioning platform (p2)</H2>
<p>
Installation and updates are managed in Eclipse using a provisioning
platform called p2. Fundamentally, p2 is a technology for provisioning and
managing Eclipse- and Equinox-based applications. You can use p2 to install
or manage any aspect of your application, from the physical plug-ins and native
code, to the configuration of the installed software - file permissions, command line arguments, etc. 
Installation with p2 does not consist simply in adding or removing files in the 
file system, but more generally the sequence of events that must occur to lay
down and configure a system that is ready to run. Core aspects of p2 include:</p>
<ul>
<li>Automatic resolution of dependencies between software components. With p2,
you state the root set of items you want installed or uninstalled, and p2 computes
the complete set of required system changes automatically.</li>
<li>Transport of software components and configuration data from remote 
repositories to the system being installed. p2 includes sophisticated algorithms for
performing multi-threaded transfers, including support for mirrors and automatic
re-balancing of transfers based on network state (availability, throughput). </li>
<li>An extensible mechanism for "teaching" p2 how to install and configure various
kinds of software. By default p2 knows how to install and configure Eclipse plug-ins,
and basic native integration such as adding/removing files, setting permissions,
and creating symbolic links.</li>
<li>A graphical user interface integrated into the Eclipse platform, to allow 
end users to examine and manage the application.</li>
<li>A suite of command line tools and Ant tasks, to allow developers and release
engineers to build and configure p2-enabled applications.</li>
</ul>

<p>
The following documentation sections describe how to use p2 to build and deliver
your own Eclipse-based applications and extensions.</p>
<ul>
<li><a href="p2_metadata.html">Metadata management</a></li>
<li><a href="p2_director.html">Installation management</a></li>
<li><a href="p2_repositorytasks.htm">Repository management</a></li>
</ul>

</BODY>
</HTML>